package com.yourenbang.lingyun.transaction.web.service.pay;

import com.alibaba.fastjson.JSONObject;
import com.yourenbang.lingyun.core.message.Result;
import com.yourenbang.lingyun.core.model.vo.PageVO;
import com.yourenbang.lingyun.transaction.web.domain.dto.BalanceListDTO;
import com.yourenbang.lingyun.transaction.web.domain.dto.KlksBalanceListDTO;
import com.yourenbang.lingyun.transaction.web.domain.dto.KlksBalanceListDetailDTO;
import com.yourenbang.lingyun.transaction.web.domain.dto.TradeListDTO;
import com.yourenbang.lingyun.transaction.web.domain.vo.BalanceListVO;
import com.yourenbang.transaction.api.model.vo.pay.PayTransaction;

import java.util.List;

public interface TradeService {
    /**
     * 查询交易明细
     *
     * @param dto
     * @return
     */
    Result<PageVO> queryTradeDetail(TradeListDTO dto);

    /**
     * 查询余额明细
     */
    Result<PageVO> queryBalanceList(BalanceListDTO dto);

    /**
     * 查询账户明细V2版本
     * @param listDTO 请求参数
     */
    Result<PageVO> queryBalanceListV2(BalanceListDTO listDTO);

    /**
     * 快收查询余额明细
     */
    Result<PageVO> queryBalanceListKlks(KlksBalanceListDTO dto);

    /**
     * 快收查询余额明细详情
     */
    BalanceListVO queryBalanceListDetailKlks(KlksBalanceListDetailDTO dto);


    /**
     * 发送计分润交易mq
     */
    void sendProfitPayTransactionMq(PayTransaction payTransaction);

    /**
     * 列出用户的账单类型
     * @return list
     */
    List<JSONObject> allyFundBillType();

}
